package cn.edu.njnu.opengmpback.collaboration.entity.ModelTools.CModel.support;

// import org.springframework.data.mongodb.core.mapping.BeforeInsert;
// import org.springframework.data.mongodb.core.mapping.BeforeUpdate;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * @ClassName BaseEntity
 * @Description 结构化数据库的BaseEntity
 * @Author sun_liber
 * @Date 2019/7/9
 * @Version 1.0.0
 */
@Data
public class BaseEntity {
    @JsonFormat (pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date createTime;
    @JsonFormat (pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date updateTime;


    @BeforeInsert
    public void beforeInsert(){
        Date date=new Date();
        if(createTime==null){
            createTime=date;
        }
        if(updateTime==null){
            updateTime=date;
        }
    }

    @BeforeUpdate
    // @BeforeInsert 注解的作用
// 比喻: 就像一个"自动盖章机" - @BeforeInsert 注解告诉框架，在把一个新对象存入数据库之前，自动执行被它标记的 beforeInsert() 方法。
    public void beforeUpdate(){
        updateTime=new Date();
    }

    // 就像一个"标准表格模板" - BaseEntity 为你所有的数据库实体提供了一些通用字段和功能（比如ID、创建时间、更新时间），这样你就不用在每个实体类里重复写同样的代码了。
// 技术定义: 这是一个基类实体，用于被其他实体类继承，以实现代码复用和统一标准。
}
